package org.wu.framework.lazy.orm.database.jpa.repository.query;


import org.wu.framework.lazy.orm.database.jpa.repository.enums.QueryType;
import org.wu.framework.lazy.orm.database.lambda.stream.lambda.LazyLambdaStream;

import java.lang.reflect.Method;

/**
 * 查询元信息
 * 包含 LazyLambdaStream、执行sql、执行类型、执行参数、需要执行的原始method
 */
public interface LazyQueryMetadata {

    /**
     * 用于处理含有注解@select、@insert 的方法
     *
     * @return 返回 LazyLambdaStream 对象
     */
    LazyLambdaStream getLazyLambdaStream();
    /**
     * 获取执行sql
     */
    String getQuerySql();

    /**
     * 获取执行类型
     */
    QueryType getQueryType();

    /**
     * 获取需要执行的参数
     */
    LazyParameters getParameters();

    /**
     * 获取执行方法
     */
    Method getQueryMethod();
}
